package com.example.springboot_test.easyexcel.model;

import com.example.springboot_test.easyexcel.model.common.SheetModel;
import lombok.Getter;

/**
 * 冻结行和列信息
 *
 * @author xudongmaster
 */
@Getter
public class FreezeRowColModel extends SheetModel {
    /**
     * 显示行号
     */
    private int displayRowIndex;
    /**
     * 显示列号
     */
    private int displayColIndex;
    /**
     * 冻结列数
     */
    private int freezeColNum;
    /**
     * 冻结行数
     */
    private int freezeRowNum;

    private FreezeRowColModel() {
    }

    /**
     * 创建冻结行信息
     *
     * @param sheetName    sheet页名称
     * @param freezeRowNum 冻结行数
     * @return 冻结行信息
     */
    public static FreezeRowColModel createFreezeRowModel(String sheetName, int freezeRowNum) {
        return createFreezeRowColModel(sheetName, freezeRowNum, 0, freezeRowNum, 0);
    }

    /**
     * 创建冻结列信息
     *
     * @param sheetName    sheet页名称
     * @param freezeColNum 冻结列数
     * @return 冻结行信息
     */
    public static FreezeRowColModel createFreezeColModel(String sheetName, int freezeColNum) {
        return createFreezeRowColModel(sheetName, 0, freezeColNum, 0, freezeColNum);
    }

    /**
     * 创建冻结行列信息
     *
     * @param sheetName    sheet页名称
     * @param freezeRowNum 冻结行数
     * @param freezeColNum 冻结列数
     * @return 冻结行信息
     */
    public static FreezeRowColModel createFreezeRowColModel(String sheetName, int freezeRowNum, int freezeColNum) {
        return createFreezeRowColModel(sheetName, freezeRowNum, freezeColNum, freezeRowNum, freezeColNum);
    }

    /**
     * 创建冻结行列信息
     *
     * @param sheetName       sheet页名称
     * @param displayRowIndex 显示行号
     * @param displayColIndex 显示列号
     * @param freezeRowNum    冻结行数
     * @param freezeColNum    冻结列数
     * @return 冻结行信息
     */
    public static FreezeRowColModel createFreezeRowColModel(String sheetName, int freezeRowNum, int freezeColNum
            , int displayRowIndex, int displayColIndex) {
        FreezeRowColModel freezeRowColModel = new FreezeRowColModel();
        //sheet页名称
        freezeRowColModel.sheetName = sheetName;
        //显示行号
        freezeRowColModel.displayRowIndex = displayRowIndex;
        //显示列号
        freezeRowColModel.displayColIndex = displayColIndex;
        //冻结行数
        freezeRowColModel.freezeRowNum = freezeRowNum;
        //冻结列数
        freezeRowColModel.freezeColNum = freezeColNum;
        return freezeRowColModel;
    }

}
